package cn.minhx.domain.strategy.model.valobj;

import cn.minhx.domain.strategy.service.rule.filter.factoty.DefaultLogicFactory;
import cn.minhx.types.common.Constants;
import lombok.*;
import org.apache.commons.lang3.StringUtils;

import java.util.Arrays;

/**
 * 抽奖策略规则 规则值对象；值对象，没有唯一ID，仅限于从数据库查询对象
 * @author merrick.peng
 */
@Getter
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class StrategyAwardRuleModelVO {

    String ruleModels;

    /**
     * 获取抽奖中规则
     * @return 规则【rule_model】
     */
    public String[] raffleCenterRuleModelList() {
        if (StringUtils.isBlank(ruleModels)) {
            return new String[0];
        }
        // 过滤出抽奖中规则
        return Arrays.stream(ruleModels.split(Constants.COMMA)).filter(DefaultLogicFactory.LogicModel::isCenter)
                .toArray(String[]::new);
    }

}
